# 抖码算法，让算法学习变得简单有趣
# 作者：老汤


import math


# 判断 x 是否是素数
def is_prime(x):
    if x <= 1:
        return False
    # 因为 math.sqrt(x) * math.sqrt(x) = x
    # 所以 i 的最大值为 math.sqrt(x)
    i = 2
    while i <= math.sqrt(x):
        if x % i == 0:
            return False
        i += 1
    return True


num = int(input())
a = b = -1
# 因为 math.sqrt(num) * math.sqrt(num) = num
# 所以 i 的最大值为 math.sqrt(num)
i = 2
while i <= math.sqrt(num):
    # 满足下面的三个条件，则找到了两个素数之积：
    # 1. i 是素数
    # 2. num 可以被 i 整除
    # 3. num / i 的结果也是一个素数
    if is_prime(i) and num % i == 0 and is_prime(num // i):
        a, b = i, num // i
        break
    i += 1

print(str(a) + " " + str(b))
